package com.lnsoft.cac.server.handle.codec.frameMessage;


import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import lombok.Data;
import lombok.NonNull;

@Data
/**
 * 配置/状态交互---装置复位
 * */
public class Cfg_Reset_Msg {
    private int Reset_Mode;             //1byte         装置复位：①0x00复位至正常模式；②0x01复位至调试模式。终端只有在配置为调试模式时才能接收CAC的调试命令下发。

    public ByteBuf toByteBuf() throws Exception{
        if (Reset_Mode != (byte)0x00 && Reset_Mode != (byte)0x01) {
            throw new Exception("装置复位 设置异常");
        }
        ByteBuf bf = Unpooled.buffer();
        bf.writeByte(Reset_Mode);
        return bf;
    }



    //  解析 { 配置/状态交互---装置复位} 帧报文内容区 到消息体中
    public static Cfg_Reset_Msg decFrameBody(@NonNull byte[] frameBody) throws Exception {
        ByteBuf bf = Unpooled.wrappedBuffer(frameBody);
        Cfg_Reset_Msg msg = new Cfg_Reset_Msg();
        int len = frameBody.length;
        if (len == 0) {
            return null;
        }
        msg.setReset_Mode(bf.getByte(0) & 0xFF);
        return msg;
    }

}
